package com.wrial.mall.product.feign;
/*
 * @Author  Wrial
 * @Date Created in 21:54 2020/5/15
 * @Description 调用优惠券服务
 */

import com.wrial.common.utils.R;
import com.wrial.to.SkuReductionTo;
import com.wrial.to.SpuBoundTo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient("mall-coupon")
public interface CouponFeignService {

    /**     流程：SynchronousMethodHandler
     *      1）、@RequestBody将这个对象转为json。  -- create
     *      2）、找到mall-coupon服务，给/coupon/spubounds/save发送请求。 executeAndDecode
     *          将上一步转的json放在请求体位置，发送请求；（有异常时会有重试器（retryer，默认关闭），可以设置，可以自己实现重试器）
     *      3）、对方服务收到请求。请求体里有json数据。
     *          (@RequestBody SpuBoundsEntity spuBounds)；将请求体的json转为SpuBoundsEntity；
     * 双方服务无需使用同一个to,接收方可以使用自己接受的Entity（前提是属性名要重叠）
     */
    @PostMapping("/coupon/spubounds/save")
    R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);


    @PostMapping("/coupon/skufullreduction/saveinfo")
    R saveSkuReduction(@RequestBody SkuReductionTo skuReductionTo);
}
